import Vue from 'vue'
import App from './App.vue'
import router from './router'
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
import DevicePlugin from './utils/device'

// 引入样式文件
import './assets/styles/index.js'

Vue.config.productionTip = false

// 使用ElementUI
Vue.use(ElementUI, { size: 'medium' })

// 使用设备检测插件
Vue.use(DevicePlugin)

// 修复Vue实例的window引用问题
Vue.prototype.$window = typeof window !== 'undefined' ? window : {}
Vue.prototype.$document = typeof document !== 'undefined' ? document : {}

// 请求拦截器处理错误
import axios from 'axios'
axios.interceptors.response.use(
  response => response,
  error => {
    console.error('请求错误:', error)
    // 检查是否是网络错误或前端自身错误
    if (!error.response) {
      ElementUI.Message.error('网络连接错误，请检查网络连接')
    }
    // 不在这里显示错误消息，让组件自己处理
    return Promise.reject(error)
  }
)

// 全局错误处理
Vue.config.errorHandler = (err, vm, info) => {
  console.error('Vue错误:', err)
  console.info('错误组件:', vm)
  console.info('错误信息:', info)
}

new Vue({
  router,
  render: h => h(App)
}).$mount('#app')